Field of the Disclosure
Embodiments of the present disclosure generally relate to data storage. More specifically, aspects of the present disclosure relate to drive load balancing by dynamically transferring range assignments.
Description of the Related Art
Many applications require long-term data storage and typically a high-degree of data integrity. Typically these needs are met by non-volatile data storage devices. Non-volatile storage stores data without requiring a persistent power supply. Non-volatile storage or persistent media can be provided by a variety of devices, most commonly, by hard disk drives (HDDs) and solid state drives (SSDs).
HDDs record magnetic patterns of data on a spinning, writable disk surface, while SSDs store data using non-volatile solid state electronic circuits without using movable mechanical parts. To read or write information to either HDDs or SSDs, a software application or operating system may specify a location for the data. Generally, information is stored in sets of bits of a particular length known as blocks, which are read or written a whole block at a time. Generally, storage of information a block at a time is abstracted by a file system component of the operating system for use by applications and the file system specifies, to the storage device, which blocks to read or write.
One commonly used scheme for specifying blocks of data is logical block addressing (LBA), which uses a linear address space where addressable storage spaces appears as a single contiguous address space. In LBA, each linear base address identifies a single block and these base addresses may be passed into lower level systems, such as a drive controller, which may implement an indirection system handling LBA to physical mappings of the storage mechanism.
As the complexity and number of applications have increased, the demands on storage systems have also increased and evolved. What are needed are techniques for distributing this workload across the resources available in order to better manage the workload in a scalable and flexible manner.
Therefore, a method of load balancing by dynamically transferring range assignment is needed.